/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Facade;

import entity.Account;
import entity.BankTransaction;
import entity.CurrencyEE;
import exceptions.AccessDeniedException;
import exceptions.ExchangerServiceException;
import exceptions.NotEnoughMoneyException;
import java.math.BigDecimal;
import java.util.List;
import javax.ejb.EJBException;
import javax.ejb.Local;
import javax.persistence.OptimisticLockException;

/**
 *
 * @author Vojtisek
 */
@Local
public interface BankTransactionFacadeLocal {

    public Account getAccount(Integer id) throws Exception;

    public BigDecimal getTotalBalance(CurrencyEE currency) throws Exception;

    public List<BankTransaction> findAccountTransactions(Object accountId) throws AccessDeniedException, Exception;

    void transfer(BankTransaction bankTransaction) throws ExchangerServiceException, EJBException, OptimisticLockException, NotEnoughMoneyException, Exception;
}
